{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import noaa_datasets\n",
    "import pandas as pd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Success!\n"
     ]
    }
   ],
   "source": [
    "# load the stations dataset\n",
    "stations_dataset = noaa_datasets.Stations()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Success!\n"
     ]
    }
   ],
   "source": [
    "# then load the inventory dataset\n",
    "inventory_dataset = noaa_datasets.Inventory(stations_dataset)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>index</th>\n",
       "      <th>StationID</th>\n",
       "      <th>Element</th>\n",
       "      <th>FirstYear</th>\n",
       "      <th>LastYear</th>\n",
       "      <th>Latitude</th>\n",
       "      <th>Longitude</th>\n",
       "      <th>Elevation</th>\n",
       "      <th>State</th>\n",
       "      <th>StationName</th>\n",
       "      <th>GSN_Flag</th>\n",
       "      <th>HCN_CRN_Flag</th>\n",
       "      <th>WMO_ID</th>\n",
       "      <th>CountryCode</th>\n",
       "      <th>CountryName</th>\n",
       "      <th>StateName</th>\n",
       "      <th>YearCount</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>81307</th>\n",
       "      <td>81307</td>\n",
       "      <td>CA00220B6Q3</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>1993</td>\n",
       "      <td>2019</td>\n",
       "      <td>67.1833</td>\n",
       "      <td>-130.2333</td>\n",
       "      <td>63.0</td>\n",
       "      <td>NT</td>\n",
       "      <td>LITTLE CHICAGO</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>71164.0</td>\n",
       "      <td>CA</td>\n",
       "      <td>Canada</td>\n",
       "      <td>NORTHWEST TERRITORIES</td>\n",
       "      <td>26</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>81308</th>\n",
       "      <td>81308</td>\n",
       "      <td>CA00220B6Q3</td>\n",
       "      <td>TMIN</td>\n",
       "      <td>1993</td>\n",
       "      <td>2019</td>\n",
       "      <td>67.1833</td>\n",
       "      <td>-130.2333</td>\n",
       "      <td>63.0</td>\n",
       "      <td>NT</td>\n",
       "      <td>LITTLE CHICAGO</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>71164.0</td>\n",
       "      <td>CA</td>\n",
       "      <td>Canada</td>\n",
       "      <td>NORTHWEST TERRITORIES</td>\n",
       "      <td>26</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>81309</th>\n",
       "      <td>81309</td>\n",
       "      <td>CA00220B6Q3</td>\n",
       "      <td>PRCP</td>\n",
       "      <td>2005</td>\n",
       "      <td>2007</td>\n",
       "      <td>67.1833</td>\n",
       "      <td>-130.2333</td>\n",
       "      <td>63.0</td>\n",
       "      <td>NT</td>\n",
       "      <td>LITTLE CHICAGO</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>71164.0</td>\n",
       "      <td>CA</td>\n",
       "      <td>Canada</td>\n",
       "      <td>NORTHWEST TERRITORIES</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>81310</th>\n",
       "      <td>81310</td>\n",
       "      <td>CA00220B6Q3</td>\n",
       "      <td>SNOW</td>\n",
       "      <td>2001</td>\n",
       "      <td>2007</td>\n",
       "      <td>67.1833</td>\n",
       "      <td>-130.2333</td>\n",
       "      <td>63.0</td>\n",
       "      <td>NT</td>\n",
       "      <td>LITTLE CHICAGO</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>71164.0</td>\n",
       "      <td>CA</td>\n",
       "      <td>Canada</td>\n",
       "      <td>NORTHWEST TERRITORIES</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>81311</th>\n",
       "      <td>81311</td>\n",
       "      <td>CA00220B6Q3</td>\n",
       "      <td>SNWD</td>\n",
       "      <td>1996</td>\n",
       "      <td>2007</td>\n",
       "      <td>67.1833</td>\n",
       "      <td>-130.2333</td>\n",
       "      <td>63.0</td>\n",
       "      <td>NT</td>\n",
       "      <td>LITTLE CHICAGO</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>71164.0</td>\n",
       "      <td>CA</td>\n",
       "      <td>Canada</td>\n",
       "      <td>NORTHWEST TERRITORIES</td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       index    StationID Element  FirstYear  LastYear  Latitude  Longitude  \\\n",
       "81307  81307  CA00220B6Q3    TMAX       1993      2019   67.1833  -130.2333   \n",
       "81308  81308  CA00220B6Q3    TMIN       1993      2019   67.1833  -130.2333   \n",
       "81309  81309  CA00220B6Q3    PRCP       2005      2007   67.1833  -130.2333   \n",
       "81310  81310  CA00220B6Q3    SNOW       2001      2007   67.1833  -130.2333   \n",
       "81311  81311  CA00220B6Q3    SNWD       1996      2007   67.1833  -130.2333   \n",
       "\n",
       "       Elevation State     StationName GSN_Flag HCN_CRN_Flag   WMO_ID  \\\n",
       "81307       63.0    NT  LITTLE CHICAGO      NaN          NaN  71164.0   \n",
       "81308       63.0    NT  LITTLE CHICAGO      NaN          NaN  71164.0   \n",
       "81309       63.0    NT  LITTLE CHICAGO      NaN          NaN  71164.0   \n",
       "81310       63.0    NT  LITTLE CHICAGO      NaN          NaN  71164.0   \n",
       "81311       63.0    NT  LITTLE CHICAGO      NaN          NaN  71164.0   \n",
       "\n",
       "      CountryCode CountryName              StateName  YearCount  \n",
       "81307          CA      Canada  NORTHWEST TERRITORIES         26  \n",
       "81308          CA      Canada  NORTHWEST TERRITORIES         26  \n",
       "81309          CA      Canada  NORTHWEST TERRITORIES          2  \n",
       "81310          CA      Canada  NORTHWEST TERRITORIES          6  \n",
       "81311          CA      Canada  NORTHWEST TERRITORIES         11  "
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# say we want to look at stations in Chicago \n",
    "# with at least 80 years of Max Temperature data\n",
    "\n",
    "# first find stations which Chicago in the name\n",
    "chicago_stations = inventory_dataset.df[ inventory_dataset.df['StationName'].str.contains('CHICAGO') ]\n",
    "chicago_stations.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>index</th>\n",
       "      <th>StationID</th>\n",
       "      <th>Element</th>\n",
       "      <th>FirstYear</th>\n",
       "      <th>LastYear</th>\n",
       "      <th>Latitude</th>\n",
       "      <th>Longitude</th>\n",
       "      <th>Elevation</th>\n",
       "      <th>State</th>\n",
       "      <th>StationName</th>\n",
       "      <th>GSN_Flag</th>\n",
       "      <th>HCN_CRN_Flag</th>\n",
       "      <th>WMO_ID</th>\n",
       "      <th>CountryCode</th>\n",
       "      <th>CountryName</th>\n",
       "      <th>StateName</th>\n",
       "      <th>YearCount</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>81307</th>\n",
       "      <td>81307</td>\n",
       "      <td>CA00220B6Q3</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>1993</td>\n",
       "      <td>2019</td>\n",
       "      <td>67.1833</td>\n",
       "      <td>-130.2333</td>\n",
       "      <td>63.0</td>\n",
       "      <td>NT</td>\n",
       "      <td>LITTLE CHICAGO</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>71164.0</td>\n",
       "      <td>CA</td>\n",
       "      <td>Canada</td>\n",
       "      <td>NORTHWEST TERRITORIES</td>\n",
       "      <td>26</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>325612</th>\n",
       "      <td>325612</td>\n",
       "      <td>USC00047070</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>1946</td>\n",
       "      <td>1975</td>\n",
       "      <td>38.0167</td>\n",
       "      <td>-122.0167</td>\n",
       "      <td>14.9</td>\n",
       "      <td>CA</td>\n",
       "      <td>PORT CHICAGO NAVAL DEP</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>US</td>\n",
       "      <td>United States</td>\n",
       "      <td>CALIFORNIA</td>\n",
       "      <td>29</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>352521</th>\n",
       "      <td>352521</td>\n",
       "      <td>USC00111497</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>1981</td>\n",
       "      <td>2019</td>\n",
       "      <td>42.1400</td>\n",
       "      <td>-87.7853</td>\n",
       "      <td>192.0</td>\n",
       "      <td>IL</td>\n",
       "      <td>CHICAGO BOTANIC GARDEN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>US</td>\n",
       "      <td>United States</td>\n",
       "      <td>ILLINOIS</td>\n",
       "      <td>38</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>352548</th>\n",
       "      <td>352548</td>\n",
       "      <td>USC00111522</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>1952</td>\n",
       "      <td>1959</td>\n",
       "      <td>41.6667</td>\n",
       "      <td>-87.6167</td>\n",
       "      <td>179.8</td>\n",
       "      <td>IL</td>\n",
       "      <td>CHICAGO CAL TREAT WKS</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>US</td>\n",
       "      <td>United States</td>\n",
       "      <td>ILLINOIS</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>352562</th>\n",
       "      <td>352562</td>\n",
       "      <td>USC00111526</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>1972</td>\n",
       "      <td>1976</td>\n",
       "      <td>41.8833</td>\n",
       "      <td>-87.6167</td>\n",
       "      <td>182.9</td>\n",
       "      <td>IL</td>\n",
       "      <td>CHICAGO GRANT PARK</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>US</td>\n",
       "      <td>United States</td>\n",
       "      <td>ILLINOIS</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         index    StationID Element  FirstYear  LastYear  Latitude  Longitude  \\\n",
       "81307    81307  CA00220B6Q3    TMAX       1993      2019   67.1833  -130.2333   \n",
       "325612  325612  USC00047070    TMAX       1946      1975   38.0167  -122.0167   \n",
       "352521  352521  USC00111497    TMAX       1981      2019   42.1400   -87.7853   \n",
       "352548  352548  USC00111522    TMAX       1952      1959   41.6667   -87.6167   \n",
       "352562  352562  USC00111526    TMAX       1972      1976   41.8833   -87.6167   \n",
       "\n",
       "        Elevation State             StationName GSN_Flag HCN_CRN_Flag  \\\n",
       "81307        63.0    NT          LITTLE CHICAGO      NaN          NaN   \n",
       "325612       14.9    CA  PORT CHICAGO NAVAL DEP      NaN          NaN   \n",
       "352521      192.0    IL  CHICAGO BOTANIC GARDEN      NaN          NaN   \n",
       "352548      179.8    IL   CHICAGO CAL TREAT WKS      NaN          NaN   \n",
       "352562      182.9    IL      CHICAGO GRANT PARK      NaN          NaN   \n",
       "\n",
       "         WMO_ID CountryCode    CountryName              StateName  YearCount  \n",
       "81307   71164.0          CA         Canada  NORTHWEST TERRITORIES         26  \n",
       "325612      NaN          US  United States             CALIFORNIA         29  \n",
       "352521      NaN          US  United States               ILLINOIS         38  \n",
       "352548      NaN          US  United States               ILLINOIS          7  \n",
       "352562      NaN          US  United States               ILLINOIS          4  "
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# next, let's filter down the inventory data to just Max Temp measurements\n",
    "chicago_stations = chicago_stations[ chicago_stations['Element']=='TMAX' ]\n",
    "chicago_stations.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>index</th>\n",
       "      <th>StationID</th>\n",
       "      <th>Element</th>\n",
       "      <th>FirstYear</th>\n",
       "      <th>LastYear</th>\n",
       "      <th>Latitude</th>\n",
       "      <th>Longitude</th>\n",
       "      <th>Elevation</th>\n",
       "      <th>State</th>\n",
       "      <th>StationName</th>\n",
       "      <th>GSN_Flag</th>\n",
       "      <th>HCN_CRN_Flag</th>\n",
       "      <th>WMO_ID</th>\n",
       "      <th>CountryCode</th>\n",
       "      <th>CountryName</th>\n",
       "      <th>StateName</th>\n",
       "      <th>YearCount</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>352616</th>\n",
       "      <td>352616</td>\n",
       "      <td>USC00111577</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>1928</td>\n",
       "      <td>2019</td>\n",
       "      <td>41.7372</td>\n",
       "      <td>-87.7775</td>\n",
       "      <td>189.0</td>\n",
       "      <td>IL</td>\n",
       "      <td>CHICAGO MIDWAY AP 3SW</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>72534.0</td>\n",
       "      <td>US</td>\n",
       "      <td>United States</td>\n",
       "      <td>ILLINOIS</td>\n",
       "      <td>91</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         index    StationID Element  FirstYear  LastYear  Latitude  Longitude  \\\n",
       "352616  352616  USC00111577    TMAX       1928      2019   41.7372   -87.7775   \n",
       "\n",
       "        Elevation State            StationName GSN_Flag HCN_CRN_Flag   WMO_ID  \\\n",
       "352616      189.0    IL  CHICAGO MIDWAY AP 3SW      NaN          NaN  72534.0   \n",
       "\n",
       "       CountryCode    CountryName StateName  YearCount  \n",
       "352616          US  United States  ILLINOIS         91  "
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# ok now let's filter to where YearCount > 80\n",
    "# YearCount is just the difference between LastYear and FirstYear\n",
    "chicago_stations = chicago_stations[ chicago_stations['YearCount']>80 ]\n",
    "chicago_stations.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Retrieving USC00111577.dly\n",
      "Transposing USC00111577 dataset\n",
      "Applying data prep operations\n",
      "Success!\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>StationID</th>\n",
       "      <th>YEAR</th>\n",
       "      <th>MONTH</th>\n",
       "      <th>ELEMENT</th>\n",
       "      <th>VALUE</th>\n",
       "      <th>DAY</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>USC00111577</td>\n",
       "      <td>1928</td>\n",
       "      <td>3</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>22.0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>USC00111577</td>\n",
       "      <td>1928</td>\n",
       "      <td>3</td>\n",
       "      <td>TMIN</td>\n",
       "      <td>-67.0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>USC00111577</td>\n",
       "      <td>1928</td>\n",
       "      <td>3</td>\n",
       "      <td>PRCP</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>USC00111577</td>\n",
       "      <td>1928</td>\n",
       "      <td>3</td>\n",
       "      <td>SNOW</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>USC00111577</td>\n",
       "      <td>1928</td>\n",
       "      <td>3</td>\n",
       "      <td>SNWD</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     StationID  YEAR MONTH ELEMENT  VALUE DAY\n",
       "5  USC00111577  1928     3    TMAX   22.0   1\n",
       "6  USC00111577  1928     3    TMIN  -67.0   1\n",
       "7  USC00111577  1928     3    PRCP    0.0   1\n",
       "8  USC00111577  1928     3    SNOW    0.0   1\n",
       "9  USC00111577  1928     3    SNWD    0.0   1"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# wow - looks like only a single station meets our criteria\n",
    "# usually I've found that airports have the best weather stations\n",
    "# let's copy that StationID and pull down its daily file\n",
    "chicago_daily_file = noaa_datasets.DailyFile('USC00111577')\n",
    "chicago_daily_file.df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>StationID</th>\n",
       "      <th>YEAR</th>\n",
       "      <th>MONTH</th>\n",
       "      <th>ELEMENT</th>\n",
       "      <th>VALUE</th>\n",
       "      <th>DAY</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>USC00111577</td>\n",
       "      <td>1928</td>\n",
       "      <td>3</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>22.0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>USC00111577</td>\n",
       "      <td>1928</td>\n",
       "      <td>4</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>156.0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>USC00111577</td>\n",
       "      <td>1928</td>\n",
       "      <td>5</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>222.0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>USC00111577</td>\n",
       "      <td>1928</td>\n",
       "      <td>6</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>256.0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>USC00111577</td>\n",
       "      <td>1928</td>\n",
       "      <td>7</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>294.0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      StationID  YEAR MONTH ELEMENT  VALUE DAY\n",
       "5   USC00111577  1928     3    TMAX   22.0   1\n",
       "10  USC00111577  1928     4    TMAX  156.0   1\n",
       "15  USC00111577  1928     5    TMAX  222.0   1\n",
       "20  USC00111577  1928     6    TMAX  256.0   1\n",
       "25  USC00111577  1928     7    TMAX  294.0   1"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# now let's filter this to just Max Temp values \n",
    "df = chicago_daily_file.df[ chicago_daily_file.df['ELEMENT']=='TMAX' ]\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Nate\\Anaconda3\\lib\\site-packages\\ipykernel_launcher.py:3: SettingWithCopyWarning: \n",
      "A value is trying to be set on a copy of a slice from a DataFrame.\n",
      "Try using .loc[row_indexer,col_indexer] = value instead\n",
      "\n",
      "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
      "  This is separate from the ipykernel package so we can avoid doing imports until\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>StationID</th>\n",
       "      <th>YEAR</th>\n",
       "      <th>MONTH</th>\n",
       "      <th>ELEMENT</th>\n",
       "      <th>VALUE</th>\n",
       "      <th>DAY</th>\n",
       "      <th>Temp F</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>USC00111577</td>\n",
       "      <td>1928</td>\n",
       "      <td>3</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>22.0</td>\n",
       "      <td>1</td>\n",
       "      <td>35.96</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>USC00111577</td>\n",
       "      <td>1928</td>\n",
       "      <td>4</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>156.0</td>\n",
       "      <td>1</td>\n",
       "      <td>60.08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>USC00111577</td>\n",
       "      <td>1928</td>\n",
       "      <td>5</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>222.0</td>\n",
       "      <td>1</td>\n",
       "      <td>71.96</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>USC00111577</td>\n",
       "      <td>1928</td>\n",
       "      <td>6</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>256.0</td>\n",
       "      <td>1</td>\n",
       "      <td>78.08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>USC00111577</td>\n",
       "      <td>1928</td>\n",
       "      <td>7</td>\n",
       "      <td>TMAX</td>\n",
       "      <td>294.0</td>\n",
       "      <td>1</td>\n",
       "      <td>84.92</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      StationID  YEAR MONTH ELEMENT  VALUE DAY  Temp F\n",
       "5   USC00111577  1928     3    TMAX   22.0   1   35.96\n",
       "10  USC00111577  1928     4    TMAX  156.0   1   60.08\n",
       "15  USC00111577  1928     5    TMAX  222.0   1   71.96\n",
       "20  USC00111577  1928     6    TMAX  256.0   1   78.08\n",
       "25  USC00111577  1928     7    TMAX  294.0   1   84.92"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# the DailyFile Class has a method for converting \n",
    "# temperature values from C to F, let's do that\n",
    "df['Temp F'] = df.apply( chicago_daily_file.c_to_f, axis=1 )\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x186d95f1be0>"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAEWCAYAAAB2X2wCAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzt3Xl4FdX5wPHvmz2EJOwh7FvYZd+RzRWwanErqNVqq2K1dVes1krrz1rbulta61JUVEQEF1ARRGSXsINsIQRIIGSDkH09vz9mbrhJbpIbspHh/TxPntw7c+7MmXNn3nvmzJkzYoxBKaVU4+fT0BlQSilVOzSgK6WUQ2hAV0oph9CArpRSDqEBXSmlHEIDulJKOYQGdKXqgIgEiYgRkQ4VzP+1iHxR3/mqKREJFJFMEWlXwfyZIrK8vvPlrcZa7t5qdAFdRL4XkZMiEliH6zAickJE/Nym+YlIkojUasd9EbnJPkAyRSRHRIrd3mfW5rqUd6oKxm7pOojIXHtfOS0iP4nIH0UkqKp1GGPeMsZcWXu5rhkRmWxv8wdlpo+yp38NYIzJM8Y0NcYca5icekdEnrPzPdB9en2Xu4j0FpHC+lpfowroItIFGAcY4Ko6Xt0pYIrb+6nAydpeiTFmnn2ANLXXd8z13p7mCO4/jk5Yt4i0ATZg7YvDjTFhWPtIJNC5ttdXT44DF4tImNu0W4D9DZSfsyIiPsDNQBpW/r39XK3uJw2xzzeqgI715WwA/gfc6ppo1yISRcTXbdo0Edlhvw62a1InRWSPiDwqIvFVrOs9Su8MtwDvuicQkdvs5WWISKyI3OU27zER2eD6UkXkbhHZ7U3trSwR6Sgin4lIir2emW7znhOReSIy367VbxORriLyJzt9nIhMcku/QUT+IiKbRSRdRBaKSHgF650sIjEiMltE0ux1X+82P1hEXhKRo3b5v+o6c3L77B9F5AQwp8yym9i12ii3aR1EJFtEmtnvp4nIDhE5JSKrRaSvW9qnROSQXfa7ROQKt3kzReQ7EXldRE4Cszxs21gR2WiXwTERedHtAPzB/r/PLtOfeyieR4FE4DZjzBEAY0ycMea3xph9bummiMhBe997sUwel7u9H2jn+aRdlg95kU9E5AoROWCX0Uv293uzPc/X/u6OiHUW8baIhHrYFpds4CvgevvzAcA04EO39ZU6exGRNiKy1P4u1+P2YyYifxORv9uvg0UkT0T+bL8PE5FcEWkq1tnvQjuPp0RkpYj0stONs/cvH7fl3iQiGyrZjkuAcOAh4CYpHRdKyt1tW+4WkYPALrdp99rHTrKI/J+ISFVlKnZtXETuEJGjwFKsfclXzpx1D64k3zVnjGk0f0AM8FtgKFAARLjNOwhc6vZ+ATDLfv0csApoDnQAdgDxlazHAP2BE0Az+++EPc24pbsC6A4IMAHrgBhiz/PB+jKfBqKwaveDq9i+iWXzBfgCO4HHgACgJ3AEmOC2bdnAJMAPmA8cAh623/8O2OO2vA3AYaA30BT4AnizgvxMBgqBv9rrvsReV1d7/r+BT+zyCQe+Af5U5rN/tj8b7GH5bwOz3d4/BiywX4/CqjEOtcvgTqyaop89/xdYtWEf4JdABtDKnjfTXvcd9mc9rXsEMNye393et2ba84LsfaBDJd/VNuDxSua7lvEpEAZ0xTrrm+iWx+X26+ZAMnAvEGinH+5FPtsCmcDPAH+sH5kC4GZ7/m+BPVhBNgz4EvhvJd91DHARsMqedg3wmZ2vrz2VDbAYeB8IBgZhHSeu7ZoKbLJfX4R1jK5ym7fRfu2HVUFrai9/DrChzLE9ye39V8A9lZT9PKzKVzBwGpjqNs+93F3bsgRrHw52m/aNPa0rEOtNmWIdUwZ4E2hiL683UFhvMbK+VlTjjMKF9s7qOmj3Ag+4zX8GeNt+HQpkAZ3t97HA5W5pf0PVAb2H/cXcZe8E/7WnmUo+txi4z+19F6zTvj1UcvC7pZ9YNl9YPxQHykybDcyxXz8HfOE273ogFRD7fWt7e4Lt9xuAp93SDwGyKsjPZCAXCHKb9jnwiH0Q5gPt3eZNwv7xsD+bBfhXsr0TgBi39zuBq+zX7wBPlEl/GBhZwbL2ur5j+/vaX839axbwof3am4B+FPhVJfNdyxhWpuzud8ujK7DcBqw/i3zeCax0m+cDJHEm+KwFbnebPxDrB1kq+K5jsConcfa+uxi4lgoCuv26GOjitpwX3LYrDMiz/z+NVck4bn/ub8DzFWxjW3u5Qfb7PwFv2a8j7G1oVcFnw+z5k+33c4H5bvM9BfQxHr63iW7THgSWVFWmnAno7dzm12tAb0xNLrcCy4wxKfb7D3BrdrHfX2Of8l8DbDHGHLbntcM6AF3cX1fmXaymlnLNLQAiMsU+xU0TkVNYtY5WrvnGmDhgJdbB8bqX6yyrM9DFPhU9Za/nQayd3uWE2+scINnYe5P9HiDELY379h8GmkgFzS72snLLpG9n//kDu93ytRho45Y20RhTUMm2uU5HR4vIIKwa91f2vM7AH8psd2ugPZT0VtjhNq8HbmVPFd+xiPQVka/s0+bTwFNlPl+VVDu/VUl0e52NVQstqyNWLbS6+Sy1XxtjioEEt4+3w/q+XA5j1RpbVJRZe7/5ALgf6yzpy4rSYu2DQvn9ybWs01g/0hcC47GOhU3ASKwf81X2NvqJyD/EatI7jfXjLEBLe1HvYh3bQcAM4Fu3OFDW9Vhna67mrHnA1WI341XA075SdptcvXqqKtNi04AXjBtFQBeRYOAGYILdvpgIPAAMFPsqtjHmJ6zCnQLciLVTuhzHqlG4dPRy1auxDtoIYE2ZPAUCC4F/YDX9NMNqMxO3NFOB0cAK4O9errOso8BeY0wzt79QY8y0s1welN7+TkC2MSa9grStpHS7fyfgGFaZFgLd3fIVboxp6ZbWUAk7eLyLdQHrl8BHbj8AR4Gnymx3E2PMpyLSE3gVq4bawi57V+3Sq3VjnXFtsfMfhtU05Pp8VZ8FK2Bc40U6bxzFak7xpLJ8ltqv7Xbm9m6fPUbpC7SdsH7g06rIz7vA74FFxpi8StIlYpVV2f3J3SrgUqAPVjPVKqymykGcOaZuAy7DOsMLx6rVgr2dxphDWM2kV2LtJ+9VkqdbsZpK4u048R5WM9YNlXzG0/dddptcQbqqMi27LG/2pVrTKAI68HOgCOiLtSMMwtpBVlP6wuUHWDvieKw2dJePgcdFpLmItMc6haySHXCuxGoGKPvFBGDtKMlAoYhMwdopARCRVsBbWM07twJX2gG+utbYy7vfvmDjJyIDRGTIWSzL5Vci0lNEmmKdCs+vJK0/8EcRCRCRi7AOzoV24H0beFlEWomlo4hcWs28vIt1sM2g9FnQG8DvRGSYveymInKViDTBquUWY5W9j1gXiXtUc72hQLoxJlNE+mG1twNW1zwgHehWyeefByJF5C0R6QglF69fdV3Qq4bFQA/74lyAfcFweFX5xGrCGSkiU8W6UPogVnu8y4fAwyLSyb5w9wzwgYd9uRRjzF6s5r/ZVaTLxboGM1usi54DgJvKJFsF/BrrjLkI+B6r2WO3WyUiFKtpLxXrTPIZD6t7F/gj1nfisR+5iHTDOhu4jDNxYiDwEqXP5r3xmIiEi9Wz7l7OHCPVLdMkrLPQsj90daKxBPRbgXeMMUeMMYmuP+A1rKvYrqv+H2LtiN+VOSX7MxCPdbFwOdaFvMpqHiWMMbuNMbs9TM/A+vH4GOuC541YB5jLG8BnxpilxphUrJ36TRFpWXZZVay/AKspZwzWGUgy1kWjmnRpfA+rrBKwAuNDlaSNw6qJJ2IF8NuMMbH2vPuxaizRWAHwa6oZWI0xB4F9QIYx5ke36Wuxyvc/WBcT92OVsTHGbMG6IBuNVUvtar+ujgeA34jV1/91yv+oPQUssJt0ynWRNcYkYZ19+QObRSQD60JaIqVPyatkjDmJ9UM5HSsA7MMKTJXm0xhzHOuH8BUgBau2vpMz+/YcrIuy67CadNKwgr43efrBPsaqchfWGewJrO/qnTLzV2MFaVfPoW1Y+9wPbmnewtqvE+38lzobti3A2rc+ruSs4RasaxGrysSJl7F++KIq+JwnS4DtWPvVAqwLv1DNMrW/2+ex9pFTdtNinZGKf1icS0TuBqYbYyY0dF7qm1jdvV4zxrzvRdrJdtrq1n6rm6cPgJ+MMZ5qZspLdsUmEbjSGLO+ofNTm+zmpCNYx62ngF9b6wnCakLpaIypqmvzOaex1NBrREQixerP62OfDj8ELGrofCkQkR5Y3e7K1uyUF+wL8+F2IPoT1oXXzQ2crbowAzhdl8HcCaq8k8kOgO6no92wTkebYbXnJdvT/2CMWVrrOawdAVing66+wB8B/2rQHClE5Hngbqy+6AlVpVcejcfqyeEH7AKmGWPyGzZLtcs+q+yC1eSmKlGtJhex7rhKwOp2dBuQaYz5Rx3lTSmlVDVUt8nlYuCgW/9upZRS54jqDh4zHbdxHYB7ReQWrCvBD9lXdEsRkTux+gsTEhIytHfv3mWTKKWUqsTmzZtTjDGtq0rndZOLWAP1HAP6GWNOiEgEVlcpA/wFiDTG3F7ZMoYNG2aio6vbu0wppc5vIrLZGDOsqnTVaXKZgnVzwAkAY8wJY0yRfbvxf7EGEVJKKdVAqhPQZ1B6GE33cSymYV1hV0op1UC8akO3b7e+FOuuMJfn7bueDNbdhHd5+KhSSql64lVAN8Zkc2bkM9e0X9ZJjpRSSp2V8+JOUaWUOh9oQFdKKYfQgK6UUg6hAV0ppRxCA7pSSjmEBnSllHIIDehKKeUQGtCVUsohNKArpZRDaEBXSimH0ICulFIOoQFdKaUcQgO6Uko5hAZ0pZRyCA3oSinlEBrQlVLKITSgK6WUQ2hAV0oph9CArpRSDqEBXSmlHEIDulJKOYQGdKWUcggN6Eop5RAa0JVSyiE0oCullENoQFdKnfde++4Av5kb3dDZqDG/hs6AUko1tIVbEohLzSIjt4DQIP+Gzs5Z0xq6Uuq8lnAqh0MpWRgDO+PTGzo7NaIBXSl1Xlsbk1LyeuvRUw2Yk5rTgH4eKio2DZ0F5UBf7TzOyGeX88fFu9iVkI4xjWM/WxuTQqumgXRp2YRtjTygaxv6eSY1M48rX11Dj4hQ/n7dACLCgho6S6qO7T6WTnp2AQXFhqLiYgZ1bE6LkIBaX8+XO49zOqeQj6OP8t6Gw/SJDOOV6YOIigit9XXVFmMMa2NSGdujJT4irIlJwRiDiHj9eW/T1getoZ+D8guL2Xw4rU6WPfuLn0jOzGPToTQuf+kHvtp5vE7Wo+resVM5VdaCN8amcsUra7jxzY3c+vaP3P6/aB5buKPW82KMYWNsGpf3i+DHJy7hLz/vT2J6Dk8s2nVO19T3n8gkJTOPsd1bMahjM5Iz8jienuvVZ9/fcJgBTy/jujnreHN1LEfTsus4t1XTgH4Oen/DYa6ds55dCbV7gWbZ7kQ+336M310UxZLfX0jnFk24e94Wbn5zI08u3skrKw6weGsCBUXFtbpeVfsWb01gzHPfceN/N7I38XSF6T7ffoxgf18+uGMkC+8ezfThHVm5N4nUzLxazU9sShYpmXmM7NaS8GB/fjmqMw9d1osf49L4eldira6rNrnaz8dGWQEdqLLZxRjDC9/u58nFu+gdGUp2fhHPLNnDuOdX8vdv9tZ5niujAf0ctOwn6wBYUkXtubjYcOBEhlfLTM8u4MnFu+gTGcbdE7vTrXVTPrl7DPdfEkVyRh5LdhznhW/3c//8bfx6bjQZuQU13o7qqO0A42SpmXnM/mI33VqHsCfxNFNfXs1Tn+0iPaf0d1ZYVMzXuxK5uE8bxnRvxdDOLfjV2C4UFhu+3FG7Z2Y/HrLOKEd0bVEybfrwjvSMaMpfv9pLXmFRra3LGMOxUzmczMqv8bLWxqTQpWUT2jcLpk9kGAG+PpUG9MKiYv6waBevrDjADcM68OEdo1h63zhWPzqJKwe241/fH2zQdngN6OeY9OwCNsWdBGDJjuOVnq6+sy6OS1/8waua/DNLfiI1K5+/XzcAf1/ra/f39eH+S3ryzQPj2frUZex7ZjJ/veYC1sakcMN/NpDo5alnTX22LYGhzyxn4eb4Wl92UbHht/M28/Tnuz3OP5ebAyryzJI9ZOYV8u+bh/L9wxO5eVRn3t9wmEc/2V4q3YbYNFKz8vnZgMiSab3bhtG7bSifbk2o1TxtjE2lVdNAurUKKZnm5+vDk1f05UhaNnPXxQFWJWRB9FF+O28zr6w4wLqDKWTnF1a5/OJiw5urY7ntnR8Z/n/LGfPcd4x+bgUvfrvfq897UlhUzMZDaYzp0QqAAD8f+rYLY9uRigPyi8v38+GPR/jtxO787doB+NnHUscWTXh2Wn8iQoOYtXBHg53lakA/x3y/P4miYsP04R05kpbNrgTPp9M5+UXM+f4gAF/tqry2FR2XxoLN8cyc0I3+7cMrTBfo58uMEZ14+1fDOZKaxbR/rfX6DOBs7Tl+uqRN97WVMbXeA+f1lTEs3ZnIws3xFJY5yNJzChjx7ArmbzpSq+usS6v2J7NoawJ3T+hOz4hQmjUJ4M9X9+feST34ZvcJ9iWe+b6W7DxGSIAvE3u1KbWMa4a0Z/vRU8QmZ9ZKnowxbDyUxshuLcpdIBzfszWTerXm1RUxfLf3BNPmrOORT3awKe4kLy7fz43/3cjA2ctYWsXZ6D+/3cczS/YQfzKHib3a8PSVfbm4TwQvrzjARf9YxWfbqv6BKiwqZuW+JPILrf1ge3w6mXmFXGgHdIBBHZuxMyG93L7i+vz8TUe5rG8Ej07uXW5bQ4P8+fPV/dibmMEbP8RWmZ+6oAH9HLNiTxItQwJ4dHJv/HyEL3ce85hu3sbDpGTmERkeVGUb5UebjhIa6Me9k6K8ysOEnq35eOZoCosNd763may8s6sBVSU9p4CZ728mLMif2Vf141BKVpU/Tu5eXn6AN344WOH8dQdTeGn5frq0bEJGXiHb40vXvH7Yn0xyRh7PLt1bK6fvdS07v5AnFu2ke+sQ7rmoR6l5t43tSpMAX/71fQwABXZzyyV9Iwjy9y2V9upB7RGx2uFrw9G0HI6n5zLSrbnF3RNX9CG7oIjb/xfN8VM5vHDDQDY+fjHbnrqMd24bTlSbUJ7+fHeF+9knm+N5feVBZozoyLIHxvOP6wfyq7Fdef3GISyYOZo2YYHc99G2Uv3JPZm7/jC3vbOJn726mui4NNbGpCACo7u1LEkzuFMzcgqK2OehIrMmJoWUzHyuHdqhwnVc1q8tU/q35eUVBziUklVpfuqCBvQGVLaduqComO/3JTGpdxtahARwYVQrj80uOflF/HtVLGO6t+Tuid05mJxFTJLnmnROfhFf7TzOlAvaEhzg6zGNJ/3ahfPqjMHEpWYx+wvPzRU1UVxseHD+NhJO5jDn5iHcPKoz3VqH8PrKg141gxxNy+alFft5dulelv90otz8pIxcfv/hNrq2CuGDO0YhAqsPlD7gV+5LIiTAl8y8Ql74dn+peUdSs3l9ZQw5+bXX9utJXEoWz3+9l9/MjebBj7cx+4vdvLXmELkF5df7z2X7iT+Zw3PXDiDQr/R32TwkgJtHdeaL7ceIS8li/cFUTmYXcMUFkeWWExEWxNjurVi0LaHCst6beJp318fx92/28siC7Tzz5U8UV3D2tPFQKgAju7b0OL9Hm1BmX9WP+y6O4ruHJ3LNkA74+Ajhwf5M6tWGZ6b1Jykjr+SMs9SyY1N5/NMdjOnekj9f3b9crXh4lxYsmDmatmFBvPjt/gq3p7jY8N76OLq1DiErr4jr/r2eN1fH0q9dGM3dunBWdmF08dYEwoP9mdirtcd1uDx9VT8C/Xx46rNdlaarCxrQG8iPh9IY+sxy/rlsX8m0zYdPcjq3kEv6WKfIV1wQSfzJHLaXuR3ZVTu/7+IoLuvbFqDCWvqynxLJyi9i2uCKaxUVGdWtJfdM7MHH0fF8ucPzmUJuQRG/fGsjf/6i4gO+rOJiw5+//IkVe5P448/6MrRzC3x9hLsndGfP8dN8vz+5ymXMXReHjwg92jTlkU+2c+L0mfb+7PxC7vtwG5l5BfzrpqG0axbMgPbhrHEL6MXFhlX7krmkbwQ3j+zEvI2H2XPcat6KTc7k+v+s4+/f7OPmtzaSnn3mh/dkVj73f7SVJxfvrDKPSRm5/PeHWB79ZDvT/rWW0X9dwbVz1vHIgu28suIA099Yz8R/fM+/Vx3kSFoWG2PT+CQ6nr98+RPPfVW6t8SWIyd5e+0hbhrZieFdPNeEf3NhV/x8fZjz/UGW7DhO00A/xvf0HHymDW7P0bQcog+fLDdvy5GTXP3aWp76bDf/XhXLd3uTeHPNIb6oYB/YeCiN5k38iWrTtMKyuHlUZx64tCdNA8vf+jKkU3N+Pqgdb5Tp+rc38TR3vb+Zji2aMOemoSXXfsoK9PPlnkndiT58krUxqR7TrIlJIS41m/sujmLZA+O5Y1xXsvKLuKh3RKl0nVo0oUVIQLl29Ky8Qr7ZfYIrBkSW+zEtKyIsiOuHdmTjobrpelwZDeh1bF1MCl/tLF3LTjiVw93vb6ao2PD6yhi2HLEOqhV7ThDg68OFUdZBeFnftvj7CkvcDqTcgiL+84NVOx/ZrSVtw4MY3KkZX+/2HNA/3ZJA+2bBFZ4OV+W+S6IY3KkZj3+6k/iT5fvZ/nXpHlYfSOHttYeY9emOUkF965GTzFq4g292J5Zsf15hEb/7aCv/WxfH7WO7csvoziXprx7UnnbhQfxrZUylecrKK2R+9FGmXhDJv28eSm5BMfd/tI2iYsPmwyeZ+vJqNhxK5f9+fgG92lo3tYyLas3Wo6c4bZ8VbY8/RWpWPhf1bsMDl/YkPNif2V/sJiYpg1+8sYHCIsPjU3qzMz6dG/6znhOnc1kXk8KUl1ezeNsx3t9whINVtEHfO28r/7d0D9/tTSbQz4fR3Vri6yOs3JfMC9/u59ipXB65vBfrH7+YZQ9MYO2si9g5+3JuG9uF/62L47u9J0rK7NFPdhAZFsSsKb0rXF+bsCCmD+/Ip1vjWbrzOJd6aG5xmdy/LcH+vny6pXSzS1xKFr+ZG01EWBA/PDKJ/c9MYdMTl9CvXRjPf73P45nDxkOpDO/SAh+fs7/B5rEpvfEReO6rvRhj+GDjEa5+bS3+vj68fetwwptUPmDWDcM7EhkexIvLPdfS311/mJYhAUzu35aQQD+euKIvG/9wMb8r03QlIgzsEF6uee6b3YnkFBQxbXB7r7anRYg/+YXFtdq7xxsa0OvYk5/t4u55W3howXay8wvJyS/iznejyS8sZuHdY2gbFsTDC7aTW1DEij1JjOzWoqQWE97En3FRrUuaXVIy83juq70kZ1i1c5fJ/dqyK+F0uRsbkjJyWX0gmZ8PbnfWB5u/rw8v/2IwxsBv520hya0m/O1PJ5i7/jC3j+3K7y+O4uPoeB7+ZDsns/J5cvFOrpmzjgWb47nrvc38/PW1LNudyC1v/ciSHcd5fEpv/vizPqVOoQP8fLhzfDc2xZ3kk83xrNyXxOKtCfxQpsa+cEs8GbmF3Da2Cz3aNGX2Vf1YH5vKzW9u5Pp/r6OgyPDhHaNKtXVeGNWKomLDhoNWDW7l3iR8xLpe0KxJAA9e1osNsWlc/dpajIGP7hzFXRO68/avhnP0ZDZTX17NTW9tpEmgL3NvH0GArw/v2j03PIlJyuTHuDQem9yb6Ccv4aM7R/PCLwbx8V2jiX7yEnbPvpzvH57IPZN6lLtb97HJvekTGcbDC3aQdDqXV1fEEJOUybPXXFDlSIB3TeiOMZCRV1iqd0tZIYF+XN4vgoVb4nn6890cTcsmNTOPW9/5EWMMc28fQaeWTfD1EXx8hD9M7UPCqRzeW3+41HKOncrhaFoOI7t5bm7xVmR4MDMndGfJzuPc9OZG/rBoJyO6tmDp78fRxa3nTEUC/Xz57aQebD58kjVl2tLjT2bz3d4TTB/RsVTtulXTQI+1/kEdm3MgKbNUk+iirQl0aB7MsM7Nvdoe1/eUkVs3158qogG9DqXnFBCbnEXfyDAWbU3g6tfWcu8HW/jp+GlemTGYQR2b8fx1A4lNzuL3H24lNiWLS/qUPgW84oJIjqXncu2cdYx8dgX/WxfHlQPblTqALu9nNbt8U6aW/vm2YxQbzqq5xV2nlk144YaB7D+RwdRXVrP6QDKJ6bk8+sl2+rUL47EpvXjw0p48cElPPt2SwMi/ruCDjUe4bUxXtjx5Kc9fO4CUzHzufG8zW46c5OXpg7hrQnePt0z/YngnWoYE8PCC7dz2zibun7+NW97+kZeXHwCsppL/rY1jYMdmDOlkHVzXD+vAzwZEsj42lWuGdODr+8cxqkyAGdKpOU0CfEsO9u/2JTGkU3OaNbHaT28c0Yl+7cIICfTjoztHldyufmFUKz68YxRB/r5MH96JL393IRN6tuaKAZF8sjm+wv76C6KP4ucjXFfBBbSQQL8Kf2SD/H15ZfogsvML+fXcaOasOsi1QzqU663iSftmwVw/rCOtmlrXYCrzh6l9+NmASN7fcJgJf1/JFa+sITE9lzdvHU7XMkF0bI9WTOjZmle/O8Cp7DMXkF39z8/2DNDdXeO70y48iB8PpTFrSm/m3jaC1qGBXn/+hmEdaBdevi193karF9ONIztX9NFSxvZoiTHwm7nRJGfkkXQ6l7UxKUwb3N7r2/zDgq1K2emc+r2fQ8dyqUOu/uGzpvTGR4T752/lQFIms6b0ZlJv6+C8MKoVvxzVmfc2WDWfi/uUPmgv7RdB+Jf+JGXkMXNCN64a2L6kGcGlS6sQercNZdnuE/xmXLeS6Yu2JjCgQzg9Kmnb9NZl/dryxb0Xcs8HW7jl7R9p3yyYvMJiXp0xuKTWc98lUYQE+rJqfzKPTe5d0kXyhuEduXpwOxZtSaBHm6YMq6ANGCA4wJf5d43mSFoW4cEBNGviz5zvD/Li8v0UFRczuFNzYlOyeHn6oJLPiAgv3DCIeyb1oE9kmMflBvj5MLJrC9YcSCHpdC67Ek7zyOW9Sub7+ggd8tDkAAAW+UlEQVTz7xoNUK6dd2DHZqyddVGpabeO6cKirQl8uiWBW8d0KTWvoKiYhVviuah3m2oFJHdREaH88Wd9eWLRLlqHBvLHn/Xx+rOzr+rHI5f3qrKtt01YEC/cMIhHLu/F/9bG8eWO47wyYzBDK6iFzprSm6mvrOb1lTE8cUVfsvIKWbE3idAgvwrLvTqCA3z58M5R5BcWn9X4L65a+pOLdzFn1UFuGtmZIH8f5m86ysV9ImjfLNir5Qzr0oIXfzGQWQt3cuWraxgX1YpiYzUJeis0sGFq6BrQ65DrSvmADuE0axLA0vvGsTnuJJP7ty2VbtaU3vxwIJmQAD86NG9Sal5YkD8b/3AxgX4+ldYOJttdpZIz8mgdGsi+xAx2HzvN01f2rbXtiYoI5bN7LuTpz3czP/oof79uAN1al/6x+M24bqV+VFwC/XyZPqKTV+vp0aZpqR+h568dgJ+P8Mp3MTRv4k+b0ECm9C/dnBDg51NlUBkX1ZqV+37iffvHc1KZGq+nC3YVGdSxGQM7NmPu+jhuGd251HezYk8SKZn5TB/R0evleXLjiE5k5RUytHOLkjMJbwT4+dDCz/v0keHBPD61D49PrfxHo09kGNcN6cDcdYdZG5PK3sTTFBu4vF8EvjVoP3fXuWXVzSuVuWFYRz7fdoznv97Hy8sPMLBDM9Ky8ktdq/HGtMEdiGoTysz3N7Ngc3y1K0ahQda+pAHdQXbEn6JLyyYlB2Ob0CCmeOhGFhLoxyczx1BcQZerii5suZvcvy0vLT/AtXPWERrkx6nsAvx8hCsHtqvZRpQRHODL364bwGNTetfJiH2e+PgIz067AD9f4f0NR3jo0p4E+FW/tXCc3QTxxupYIsOD6BNZs1EAbx3dmQc/3s6amBTGRZ3pTfJx9FEiwgIZH1V597aqiAh3ju9eo2XUtgcv68mO+HRahARwz6QeDOnUnJHdat7cUlsC/HyYf9codiak83H0UT7bdozebUMZ273y5idP+rcP54t7L+RvX+8tVwmrypk2dG1ycYztR9O93tnP9tTcpVdEKHdN6Mah5CyKjaFNaCA3jepEy6Y1W25F6iuYu/j4CH+5uj9TL4issNteVXq0aUpEWCAnTucxsVebGg97esWASJ5duoe56+JKAnpiei7f70vi7ondS24Ld5LI8GC+eWB8Q2ejUiLCgA7NGNChGU9e0RdjOOtOAc1DAnju2gHV/lxJG7oGdGc4cTqXxNO5DOjQrF7WJyI8PsX7dtbGSEQYcxY1LffPj4tqzSebrfbtmnINlfDayhjumbeF64d1YPvRdIqNdeqvGp43Z7d1oaF6uWhAryPb7fbzQR0rHjtF1b/rh3bgSGo2Y3vUrJudy8wJ3cnKK2LR1viS0TFHd2tZ47Zg1bi5rsec1oDuDDvi0/H1EfpGakA/l4zs1pKPZ46uteWFBPrx1JV9mTWlNyv2nOCrXYncPKp6F+CU8/j6CE0D/bQN3Sm2x5+iZ0RotcZPUY1XgJ8PUy6I9HjRW52fwoL8OJ2jNxaV887aQ8x8b3NDZ8Nrxhh2xKdrc4tS57HQIP96r6E3ioB+MiufZT8lehxHwp0x5px4ov3h1GzScwrq7YKoUurcExrkp7f+e9KrbRjFxhofozIvLT/A+OdX1suAOLkFRR4HwQdKBvYZqAFdqfNWaJAfGXlaQy/Hdav73sSKn56TW1DE3PVxJJzKYdnu8uNj14b0nAI+3RLPHe9GM3D2Mh78eLvHdNuPphPk70PPiJrfcq+UapzCgv2126InXVo2IdDPh32VPN18yY7jnMousJ5wvvFIpXdI7j+RQWxyJpP7e38BKzkjj0tfXMWp7AIiw4Po1KIJK/cmUVhUXO4Gku3xp+jfLtyRN5YopbwTGuRX74NzNYqI4+frQ1RE00pr6O9vPEy31iHcM6k762NTK3xe4lc7j3P1a2uZ+f4WkjK8fwjymphkTmUX8J9fDmXtYxdx/yU9ycgrZGeZBzQXFhWz+1i6tp8rdZ6zLooW1uuDyBtFQAfoFRFWYUDffSydrUdOcdPIztwwrCN+PsL8TUdLpSkuNry0fD93z9tC23Br/Ol1FTzdxJMNB9MID/bn0j4R+PgIo+xb+tcdLL2M6MMnyS0ornDEOqXU+SE0yI/CYkNugedrbXWh0QT0PpGhJGfkkebhYb7vbzhCkL8P1w3pQJuwIC7pE8GCzfElF0ddT8l5afkBrhnSnqW/H0fzJv7lnjFZmQ2HUhnR9cxTWVo2DaRPZBjrDpZexte7Egnw82FCFc8dVEo5W1gDDNDVaAL6mQujpdvRM3IL+GxbAlcNbFfymKoZIzuRlpXPst0nyMgt4Fdvb2LJjuPMmtKbf14/kOAAX8b0aMWamGSvToeOncrhcGp2uYcmjOnekui4kyXdKYuLDd/sTmR8VOtqDcWqlHIe1xC69TlAV+ML6MdLN7ss2ppAdn5Rqdutx/VoRYfmwby15hDT39jAprg0XvzFQGa6PSVnXI9WnDidV2VXSDjzVPNRZUZOHNO9JXmFxSXPBN0ef4rj6blMqeZQm0op53HV0OtzPJdGE9BbNw2kZUgA+9za0Y0xzNtwhIEdwktdhPTxEWaM6MS2o6eITc7iv7cOK/cYtrE9rFH7vGl2cbWf92lb+gEKI7paT6t3tcV/vSsRPx8p9xg5pdT5pyEectFoArqI0KttKHtPnAnouxJOs+9EBr8YXv5JODNGdOKqge2Yd8fIck+mAejYogldWjYp90BZT8q2n7uEBvkzoEM46w6mYIzhq12JjOnRqsonlCulnC8sWNvQK9WrbSj7EzMotm/vX7glngA/H67w8HTzFiEBvDJjcMmDhD25MKoVG2JTyS+s+Cp0Re3nLmO7t2J7fDqb4k5yJC1bm1uUUoBbG3o9DtDVqAJ6n7Zh5BQUcSQtm/zCYj7ffoxL+0YQHnx2NeILe7QmO7+o5NmfnlTUfu4ypntLiooNzyz5CR+BS/tqc4tSqmEeQ+dVQBeROBHZKSLbRCTantZCRL4VkQP2/zrveO0+BMCq/cmkZeVz7RDvn8Rd1ujuLfERWHMgucI0FbWfuwzp3JwAPx92xKczvEsLWtXRI9+UUo1LSIAvPnLutqFPMsYMMsYMs9/PAlYYY6KAFfb7OtUzIhQRq+viws3xtGoaUOrhvNUVHuzPwI7NWG23o8cmZ/Lk4p28tHw/OflWV8SK2s9dgvx9GWbfRKTNLUopFxGp9yF0a9JZ+mpgov16LvA98FgN81Op4ABfurQMYWNsGtGH07hldBf8azheyrgerXhtZQz3frCFpTuP4+frQ35hMQu3xPO7SVEcTs3mltFdKl3GhJ6t2RSXxuUa0JVSbkKD/M7JbosGWCYim0XkTntahDHmOID93+NTd0XkThGJFpHo5OSKmza81SsilPWxqRQUGa6pQXOLy/ierSk28N3eJO4Y3411sy7iwztG4e/rw6MLdwAVt5+73Da2K8semEBkeHCN86OUco5ztYY+1hhzTETaAN+KyF5vV2CMeQN4A2DYsGE1HqWmV9tQvt6dSO+2ofSN9NyuXR1DOzfnf7cNZ0CHZrQICQCgVdNAvrpvHG+siuVAUmaF7ecuAX4+dG2lDwVWSpUWVs81dK8CujHmmP0/SUQWASOAEyISaYw5LiKRQFId5rNEn0jrwug1Q9qX3PVZEyLCRA/91AP9fPndxVE1Xr5S6vwVGuRPwqmceltflU0uIhIiIqGu18BlwC7gc+BWO9mtwGd1lUl343u2ZuaE7h5vJlJKqXNJWD2Pie5NDT0CWGTXhv2AD4wxX4vIJuBjEfk1cAS4vu6yeUaTAD9mTeldH6tSSqkasZ4reg4FdGNMLDDQw/RU4OK6yJRSSjlBWLA/mXnWQy5qo4m4Ko3qTlGllGpMQoP8KDaQlV/3D64HDehKKVVnXLf/11c7ugZ0pZSqI/U9hK4GdKWUqiP1/Rg6DehKKVVHtIaulFIOUdKGrjV0pZRq3MJKHhStNXSllGrU6vsxdBrQlVKqjgT6+eDvK9qGrpRSjV19P+RCA7pSStWh0CC/entQtAZ0pZSqQ2FaQ1dKKWewRlzUGrpSSjV6GtCVUsohQoP89cYipZRyAqsNXWvoSinV6IUG+ZGZV0hRsanzdWlAV0qpOuQaoCszr+5r6RrQlVKqDoXV40MuNKArpVQdCguuvyF0NaArpVQdCq3Hh1xoQFdKqToUHuxPq6YBFNbDRVG/Ol+DUkqdx/q3Dyf6yUvrZV1aQ1dKKYfQgK6UUg6hAV0ppRxCA7pSSjmEBnSllHIIDehKKeUQGtCVUsohNKArpZRDaEBXSimH0ICulFIOoQFdKaUcQgO6Uko5hAZ0pZRyCA3oSinlEBrQlVLKITSgK6WUQ2hAV0oph9CArpRSDqEBXSmlHEIDulJKOYQGdKWUcggN6Eop5RAa0JVSyiE0oCullENoQFdKKYfQgK6UUg6hAV0ppRxCA7pSSjmEBnSllHIIDehKKeUQGtCVUsohNKArpZRDaEBXSimH0ICulFIOoQFdKaUcQgO6Uko5hAZ0pZRyCA3oSinlEBrQlVLKITSgK6WUQ1QZ0EWko4isFJE9IrJbRO6zpz8tIgkiss3+m1r32VVKKVURPy/SFAIPGWO2iEgosFlEvrXnvWiM+UfdZU8ppZS3qgzoxpjjwHH7dYaI7AHa13XGlFJKVU+12tBFpAswGNhoT7pXRHaIyNsi0ryCz9wpItEiEp2cnFyjzCqllKqY1wFdRJoCC4H7jTGngTlAd2AQVg3+n54+Z4x5wxgzzBgzrHXr1rWQZaWUUp54FdBFxB8rmM8zxnwKYIw5YYwpMsYUA/8FRtRdNpVSSlXFm14uArwF7DHGvOA2PdIt2TRgV+1nTymllLe86eUyFvglsFNEttnT/gDMEJFBgAHigLvqJIdKKaW84k0vlzWAeJi1tPazo5RS6mzpnaJKKeUQGtCVUsohNKArpZRDaEBXSimH0ICulFIOoQFdKaUcQgO6Uko5hAZ0pZRyCA3oSinlEBrQlVLKITSgK6WUQ2hAV0oph9CArpRSDqEBXSmlHEIDulJKOYQGdKWUcggN6Eop5RAa0JVSyiE0oCullENoQFdKKYfQgK6UUg6hAV0ppRxCA7pSSjmEBnSllHIIDehKKeUQGtCVUsohNKArpZRDaEBXSimH0ICulFIOoQFdKaUcQgO6Uko5hAZ0pZRyCA3oSinlEBrQlVLKITSgK6WUQ2hAV0oph9CArpRSDqEBXSmlHEIDulJKOYQGdKWUcggN6Eop5RAa0JVSyiE0oCullENoQFdKKYfQgK6UUg6hAV0ppRxCA7pSSjmEBnSllHIIDehKKeUQGtCVUsohNKArpZRDaEBXSimH0ICulFIOoQFdKaUcQgO6Uko5hAZ0pZRyCA3oSinlEBrQlVLKITSgK6WUQ2hAV0oph9CArpRSDqEBXSmlHEIDulJKOYQGdKWUcogaBXQRmSwi+0QkRkRm1VamlFJKVd9ZB3QR8QVeB6YAfYEZItK3tjKmlFKqempSQx8BxBhjYo0x+cBHwNW1ky2llFLV5VeDz7YHjrq9jwdGlk0kIncCd9pvM0VkXw3WeS5rBaQ0dCbOEVoWZ2hZnKFlcUZ1y6KzN4lqEtDFwzRTboIxbwBv1GA9jYKIRBtjhjV0Ps4FWhZnaFmcoWVxRl2VRU2aXOKBjm7vOwDHapYdpZRSZ6smAX0TECUiXUUkAJgOfF472VJKKVVdZ93kYowpFJF7gW8AX+BtY8zuWstZ4+P4ZqVq0LI4Q8viDC2LM+qkLMSYcs3eSimlGiG9U1QppRxCA7pSSjmEBvRKiMjbIpIkIrvcpg0UkfUislNEvhCRsDKf6SQimSLysNu0Rj9EQnXLQkQG2PN22/OD7OlD7fcxIvKKiHjq/npOq05ZiIi/iMy1p+8RkcfdPtOo9wsR6SgiK+3t2i0i99nTW4jItyJywP7f3J4u9nceIyI7RGSI27JutdMfEJFbG2qbztZZlMVNdhnsEJF1IjLQbVlnv18YY/Svgj9gPDAE2OU2bRMwwX59O/CXMp9ZCCwAHrbf+wIHgW5AALAd6NvQ21aXZYF1sX0HMNB+3xLwtV//CIzGuo/hK2BKQ29bHZfFjcBH9usmQBzQxQn7BRAJDLFfhwL7sYYBeR6YZU+fBfzNfj3V/s4FGAVstKe3AGLt/83t180bevvquCzGuLYRa/gUV1nUaL/QGnoljDE/AGllJvcCfrBffwtc65ohIj/H2hnde/s4YoiEapbFZcAOY8x2+7OpxpgiEYkEwowx6421974L/Lzuc1+7qlkWBggRET8gGMgHTuOA/cIYc9wYs8V+nQHswbqD/Gpgrp1sLme+46uBd41lA9DM3icuB741xqQZY05ild/ketyUGqtuWRhj1tnbCrAB6z4eqOF+oQG9+nYBV9mvr8e+uUpEQoDHgNll0nsaIqF9HeexvngsC6AnYETkGxHZIiKP2tPbY22/y/lQFp8AWcBx4AjwD2NMGg7bL0SkCzAY2AhEGGOOgxXogDZ2soq2+XwsC3e/xjpzgRqWhQb06rsduEdENmOdWuXb02cDLxpjMsuk92qIhEaqorLwAy4EbrL/TxORizk/y2IEUAS0A7oCD4lINxxUFiLSFKup8X5jzOnKknqYZiqZ3uhUoyxc6SdhBfTHXJM8JPO6LGoylst5yRizF6tJARHpCVxhzxoJXCcizwPNgGIRyQU249AhEiopi3hglTEmxZ63FKvN+X3OnFrC+VEWNwJfG2MKgCQRWQsMw6qFNfr9QkT8sQLYPGPMp/bkEyISaYw5bjepJNnTKxouJB6YWGb693WZ77pQzbJARAYAb2JdR0q1J9doSBWtoVeTiLSx//sATwL/BjDGjDPGdDHGdAFeAp41xryGg4dIqKgssO4eHiAiTey24wnAT/YpZ4aIjLJ7t9wCfNYAWa91lZTFEeAiu4dHCNbFwL04YL+wv8O3gD3GmBfcZn0OuHqq3MqZ7/hz4Ba7LEYB6fY+8Q1wmYg0t3uBXGZPazSqWxYi0gn4FPilMWa/W/qa7RcNfXX4XP4DPsRq+yzA+uX8NXAf1hXs/cBz2Hfblvnc09i9XOz3U+30B4EnGnq76qMsgJuxLg7vAp53mz7MnnYQeM1T+Z3rf9UpC6ApVq+n3cBPwCNO2S+wmtMMVo+mbfbfVKxeTSuAA/b/FnZ6wXoozkFgJzDMbVm3AzH2320NvW31UBZvAifd0kbXxn6ht/4rpZRDaJOLUko5hAZ0pZRyCA3oSinlEBrQlVLKITSgK6WUQ2hAV45j93NeIyJT3KbdICJfi0iRiGxz+5vllqa1iBSIyF1llhcn1miJO0RklYh49QR2peqbdltUjiQi/bH6fw/GGsFuG9aAT9uNMU0r+MxvgRlAkTFmotv0OKw+0ykiMhtoZ4y5o263QKnq0xq6ciRjzC7gC6wxMv6ENcrfwSo+NgN4COggIhUNiLSeRjxwlHI2HctFOdlsYAvWQFnD7GnBIrLNLc1fjTHzRaQj0NYY86OIfAz8AniB8iYDi+sy00qdLQ3oyrGMMVkiMh/INMbk2ZNzjDGDPCSfDnxsv/4Ia1wO94C+UkQisAZXerKu8qxUTWiTi3K6YvuvKjOAX9nt5Z8DA0Ukym3+JKAz1pgsf67tTCpVGzSgq/OeiPQCQowx7c2ZETP/ilVrL2GMyQHuxxoxsEX951SpymlAV+eb4DLdFp/Dqp0vKpNuoT29FGMN9/ohcE/dZ1Wp6tFui0op5RBaQ1dKKYfQgK6UUg6hAV0ppRxCA7pSSjmEBnSllHIIDehKKeUQGtCVUsoh/h9gzQuGX4HJ0gAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x186d95fd358>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# then let's summarize the average high temps per year\n",
    "# and plot\n",
    "df_agg = df.groupby('YEAR')['Temp F'].mean()\n",
    "df_agg.plot(title='Avg Max Temp per year at Chicago Midway Airport', yticks=[0,25,50,75])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "# interesting result...\n",
    "# looks like something happened with the data gathering process during WWII\n",
    "# and clearly they don't have a full year's of data for 2019"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
